草庐IT

UI AABB重叠

全部标签

c++ - 具有 SFML 对象的 Box2D 在碰撞后重叠并相互重叠

我正在使用Box2D和SFML创建一个简单的游戏。但是,我的物体(球)落地后并没有完全落地。好像有50%的球都过了我的边界,看起来真的很别扭。以下是一些图片以供说明。球之前:球在地面上击中边界后:如您所见,50%的球已经消失(很可能是由于偏移或其他原因)。有人知道怎么解决吗?下面是我创建对象的代码:circ_=sf::CircleShape(radius);circ_.setOrigin(sf::Vector2f(size.x/2,size.y/2));circ_.setFillColor(sf::Color(255,255,255,255));circ_.setOutlineThic

c# - 是否可以有效地计算与数轴上的单个点 P 重叠的线段数?

是否可以有效地计算与数轴上的单个点P重叠的线段的数量?所有线段都位于一条数字线上(它是一个1-D世界,而不是一个3-D世界)。每条线段都有一个起始坐标X1和一个结束坐标X2。例子:LinesegmentAspansfromX1==1toX2==3LinesegmentBspansfromX1==2toX2==4LinesegmentCspansfromX1==3toX2==5LinesegmentDspansfromX1==1toX2==4----------------------------------------Ex1:LinesegmentsthatoverlappointP=

c++ - 如何确定一组矩形是否包含两个具有重叠区域的矩形?

structRect{doubleleft,right,top,bottom;};std::vectorvec;现在我们有N(N>1000)个矩形,判断其中任意两个是否重叠的有效算法是什么?更新:所有这些矩形都平行于坐标系。 最佳答案 您可以用两个线段表示一个矩形:开线段(x1,y1)到(x1,y2)和闭线段(x2,y1)到(x2,y2),其中x1首先,我们可以在O(nlogn)时间内根据其x坐标对所有这些段进行排序。其次,我们逐个处理每个段,如果我们遇到一个开放段,我们将该段的interval(y1,y2)添加到intervalt

c++ - 重叠 IO 和 ERROR_IO_INCOMPLETE

我已经有2年的重叠IO工作了,但我将它用于一个新的应用程序并且它向我抛出了这个错误(当我隐藏主窗体时)。我已经用谷歌搜索了,但我不明白错误的含义以及我应该如何处理它?有什么想法吗?我在NamedPipes上使用它,错误发生在调用GetOverlappedResult之后DWORDdwWait=WaitForMultipleObjects(getNumEvents(),m_hEventsArr,FALSE,500);//checkresult.GetcorrectdataBOOLfSuccess=GetOverlappedResult(data->hPipe,&data->oOverla

用于重叠匹配的 C++ 正则表达式

我有一个字符串'CCCC',我想匹配其中的'CCC',但要重叠。我的代码:...std::stringinput_seq="CCCC";std::regexre("CCC");std::sregex_iteratornext(input_seq.begin(),input_seq.end(),re);std::sregex_iteratorend;while(next!=end){std::smatchmatch=*next;std::cout但是这只会返回CCC0并跳过我需要的CCC1解决方案。我读过关于非贪婪的'?'匹配,但我无法让它工作 最佳答案

c++ - 末端指针会与其他对象重叠吗?

考虑到C++没有对内置类型数组进行绑定(bind)检查,是否有可能:一个数组的末尾指针指向另一个数组的第一个元素? 最佳答案 是的,超出数组末尾的指针可以指向另一个对象。取消引用超出数组末尾的指针会导致未定义的行为。 关于c++-末端指针会与其他对象重叠吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/24501573/

c++ - memmove() 定义中有什么重叠?

我正在阅读关于memcpy和memmove的c++引用资料,它们似乎在做同样的事情,除了memmove有一个特定的thinkcalled(允许目的地和来源重叠)。什么是重叠以及何时发生? 最佳答案 非常简单。考虑memmove(dest,source,length)。如果范围source到source+length-1指定的字节范围包括dest指定范围内的任何字节到dest+length-1,两个范围重叠。在数组中移动元素时最有可能发生这种情况。示例://Slidearraydownbyone:chararray[N];memmov

c++ - 将小的重叠 block 合并为较大的连续 block 的有效算法?

我面临一个相当有趣的问题。我有(相当大)数量的block。block只是从偏移量开始并具有长度和颜色的东西。偏移量和长度是有限的——这些block所在的空间是,其中N的范围从几十万到几百万。无效block是偏移量大于N或偏移量和长度之和大于N的任何block。block可能有大约16种不同的颜色(只是其中一种)。可能有几千block,总有这样的情况:block_X:off:100,len:50,color:blueblock_Y:off:148,len:50,color:blueblock_Z:off:200,len:30,color:red如您所见,X和Yblock可以连接成一个更大

c++ - 在位掩码中选择与选择器位图中的 1 位重叠的设置位跨度

给定:一个位掩码a(例如,std::uint64_t),其中至少包含一组(1)位。选择器位掩码b是a的子集(即a&b==b),并且至少有一位设置。我想在a中选择与b中的位重叠的连续1位的跨度:a=0b1111001110001100;b=0b0000001010001000;//c=0b0000001110001100//XXXXYYYZZXXXX组在c中为0,因为b&XXXX为false。ZZ组被复制,因为b设置了Z位之一。同样的原因,YYY组也在c中设置。请注意,b可以在a的单个组中设置多个位。因此对于a中每个连续的1组,如果b,则将所有这些位设置在c中>在任何这些位置都有一个1。

java - 在 C++ 中重叠类似 java 的接口(interface)

我在很多地方都读到过,Java的接口(interface)可以使用C++的抽象类和所有纯虚拟方法100%模拟。我正在尝试转换这段java代码:interfaceA{voida();}interfaceBextendsA{voidb();}classCimplementsA{publicvoida(){}}classDextendsCimplementsB{publicvoidb(){}}Dd=newD();d.a();d.b();在C++中变成这样的东西:classA{public:virtualvoida()const=0;protected:virtual~A(){}};class